home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / win_os2.swg / 0038_Bitmap Loading In Windows.pas < prev    next >
Pascal/Delphi Source File  |  1994-08-25  |  2KB  |  81 lines

  1. {
  2. MM> Thanks alot but I was woundering if you had the complete code USES
  3. MM> and every thing no blanks. Becuase I am not to good at graphics. ---
  4.  
  5. }
  6. UNIT BMPWin;
  7.  
  8. INTERFACE
  9.  
  10. USES
  11.   WinProcs, WinTypes, Objects, OWindows;
  12.  
  13. {$R MYBMP.RES} (* Change as appropriate *)
  14.  
  15. TYPE
  16.   pBMPWindow = ^tBMPWindow;
  17.   tBMPWindow = OBJECT(tWindow)
  18.     PRIVATE
  19.       vBitmap : hBitmap;
  20.       vBitSize : tBitmap;
  21.     PUBLIC
  22.       CONSTRUCTOR Init(aParent : pWindowsObject; aBitmapName : pChar);
  23.       DESTRUCTOR Done; VIRTUAL;
  24.       PROCEDURE SetupWindow; VIRTUAL;
  25.       PROCEDURE Paint(vDC : hDC; VAR vPS : tPaintStruct); VIRTUAL;
  26.   END;
  27.  
  28. IMPLEMENTATION
  29.  
  30. CONSTRUCTOR tBMPWindow.Init(aParent : pWindowsObject; aBitmapName :
  31. pChar);
  32.   BEGIN
  33.     INHERITED Init(aParent, NIL);
  34.     Attr.Style := ws_Child OR ws_Visible;
  35.     vBitmap := LoadBitmap(hInstance, aBitmapName);
  36.     IF vBitmap = 0 THEN
  37.       BEGIN
  38.         Status := em_InvalidWindow;
  39.         Fail;
  40.       END;
  41.     GetObject(vBitmap, SizeOf(vBitSize), @vBitSize);
  42.   END;
  43.  
  44. DESTRUCTOR tBMPWindow.Done;
  45.   BEGIN
  46.     DeleteObject(vBitmap);
  47.     INHERITED Done;
  48.   END;
  49.  
  50. PROCEDURE tBMPWindow.SetupWindow;
  51.   BEGIN
  52.     INHERITED SetupWindow;
  53.     SetWindowPos(hWindow, 0, 0, 0, vBitSize.bmWidth, vBitSize.bmHeight,
  54.                  swp_NoMove OR swp_NoZOrder OR swp_NoActivate OR
  55.                  swp_NoRedraw);
  56.   END;
  57.  
  58. PROCEDURE tBMPWindow.Paint(vDC : hDC; VAR vPS : tPaintStruct);
  59.   VAR
  60.     vRect : tRect;
  61.  
  62.   PROCEDURE DrawBitmap;
  63.     VAR
  64.       vMemDC : hDC;
  65.       vOldBMP : hBitmap;
  66.  
  67.     BEGIN
  68.       vMemDC := CreateCompatibleDC(vDC);
  69.       vOldBMP := SelectObject(vMemDC, vBitmap);
  70.       BitBlt(vDC, 0, 0, Attr.W, Attr.H, vMemDC, 0, 0, srcCopy);
  71.       SelectObject(vMemDC, vOldBMP);
  72.       DeleteDC(vMemDC);
  73.     END;
  74.  
  75.   BEGIN
  76.     SaveDC(vDC);
  77.     DrawBitmap;
  78.     RestoreDC(vDC, -1);
  79.   END;
  80. END.
  81.